]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
window-tracker: Fix pid based window/app association
authorSebastian Keller <sebastian-keller@gmx.de>
Mon, 8 Dec 2014 18:53:39 +0000 (19:53 +0100)
committerJasper St. Pierre <jstpierre@mecheye.net>
Mon, 29 Dec 2014 00:40:20 +0000 (16:40 -0800)
The lookup table used by get_app_from_window_pid contained only pids of
apps launched by gnome-shell itself, but not pids of apps running before
gnome-shell was (re-)started. Also the pids in that table might not even
be the pid of the process that is actually showing the window if wrapper
scripts are used.

Instead use shell_window_tracker_get_app_from_pid which uses the pids
from the windows themselves.

This removes the only use of launched_pid_to_app which will be removed
in the following commit.

This fixes: https://bugzilla.gnome.org/show_bug.cgi?id=736527

src/shell-window-tracker.c

index 5c490085e17c66daba86cccbfe25d71aa02546ce..deef1b46f1c274017b4650b4cb5fe991ade7f6c4 100644 (file)
@@ -293,7 +293,7 @@ get_app_from_window_group (ShellWindowTracker  *tracker,
  * @window: a #MetaWindow
  *
  * Check if the pid associated with @window corresponds to an
- * application we launched.
+ * application.
  *
  * Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
  */
@@ -312,7 +312,7 @@ get_app_from_window_pid (ShellWindowTracker  *tracker,
   if (pid == -1)
     return NULL;
 
-  result = g_hash_table_lookup (tracker->launched_pid_to_app, GINT_TO_POINTER (pid));
+  result = shell_window_tracker_get_app_from_pid (tracker, pid);
   if (result != NULL)
     g_object_ref (result);